﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Turnero.DAOs;
using Turnero.Entidades;

namespace Turnero.Paciente
{
    public partial class frmRegistrarPaciente : Form
    {
       
        private DAO_Pacientes paciente  = new DAO_Pacientes();
        
        public frmRegistrarPaciente()
        {
            InitializeComponent();
           
        }

   
        
      

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmRegistrarPaciente_Load(object sender, EventArgs e)
        {

        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtApellidos.Text = "";
            txtNombres.Text = "";
            txtNroDoc.Text = "";
            txtDomicilio.Text = "";
            txtTelefono.Text = "";
            txtCelular.Text = "";
            txtEmail.Text = "";
            txtCuitCuil.Text = "";
            txtObservaciones.Text = "";

            cbxLocalidad.Text = "Alta Gracia";
            cbxSexo.SelectedIndex = 0;
            cbxTipoDoc.SelectedIndex = 0;

            txtApellidos.Focus();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            //Confirmacion de alta para un nuevo paciente
            if (MessageBox.Show("¿Desea dar de alta al nuevo paciente?", "Confirmacion registro", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                //Checkeo de campos obligatorios.
                if (validar())
                {
                    if (dtpFechaNac.Value > System.DateTime.Now)
                    {
                        MessageBox.Show("La fecha de nacimiento del paciente no puede ser mayor al dia de hoy!", "Fecha Incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    //Checkeo de existencia de un paciente con ese tipo y nro de documento.
                    if (paciente.existePaciente(cbxTipoDoc.SelectedItem.ToString(), txtNroDoc.Text))
                    {
                        MessageBox.Show("Ya existe en el sistema un paciente con ese tipo y nro. de documento!", "Ya existe paciente", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    string ape, nom, tipodoc, nrodoc, sexo, dom, tel, cel, email, cuitcuil, obs;
                    DateTime fechanac;
                    Int32 loc;

                    ape = txtApellidos.Text.ToUpper().Trim();
                    nom = txtNombres.Text.ToUpper().Trim();
                    tipodoc = cbxTipoDoc.SelectedItem.ToString().Trim();
                    nrodoc = txtNroDoc.Text.Trim();
                    fechanac = Convert.ToDateTime(dtpFechaNac.Value.Date.ToString("yyyy-MM-dd"));
                    sexo = cbxSexo.SelectedItem.ToString().Trim();
                    dom = txtDomicilio.Text.ToUpper().Trim();
                    loc = Convert.ToInt32(cbxLocalidad.SelectedValue.ToString());
                    tel = txtTelefono.Text.Trim();
                    cel = txtCelular.Text.Trim();
                    email = txtEmail.Text.Trim();
                    cuitcuil = txtCuitCuil.Text.Trim();
                    obs = txtObservaciones.Text.Trim();

                    Boolean guardar = paciente.guardarPaciente(ape, nom, tipodoc, nrodoc, fechanac, sexo, dom, loc, tel, cel, email, obs);
                    if (guardar)
                    {
                        //Aca tambien me llevo los datos del nuevo paciente para la nueva atencion ambulñatoria.
                       
                            Turnero.Entidades.Paciente p = new Turnero.Entidades.Paciente();
                            p.Cod = paciente.dameMaxID();
                            p.Ape = ape;
                            p.Nom = nom;
                            p.Tipodoc = tipodoc;
                            p.Nrodoc = nrodoc;
                            p.Domicilio = dom;
                            p.Localidad = cbxLocalidad.Text;
                            p.Sexo = sexo;
                            p.Fechanac = fechanac.ToShortDateString();
                            p.Tel = tel;
                            p.Cel = cel;
                            p.Email = email;
                           
                            p.Obs = obs;
                            
                        
                        MessageBox.Show("El paciente se registro correctamente", "Registro", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        
                    }
                    else
                    {
                        MessageBox.Show("Se produjo un error al intentar registrar el paciente en el sistema", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Faltan completar datos obligatorios en el formulario", "Datos incompletos", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
        }

        private Boolean validar()
        {
            Boolean ok = false;

            if (!txtApellidos.Text.Equals(""))
            {
                ok = true;
            }
            else
            {
                return false;
            }

            if (!txtNombres.Text.Equals(""))
            {
                ok = true;
            }
            else
            {
                return false;
            }

            if (!txtNroDoc.Text.Equals("") && cbxTipoDoc.SelectedIndex>(-1))
            {
                ok = true;
            }
            else
            {
                return false;
            }

            if (!txtDomicilio.Text.Equals(""))
            {
                ok = true;
            }
            else
            {
                return false;
            }     
       
           
            
            return ok;
        }


       
    }
}
